arclab MailMe! v1.20 - user manual
copyright 1998 arclab software GdbR
www.arclab.com
office@arclab.com

BEFORE USING ARCLAB MAILME READ THE: License agreement, LIMITED WARRANTY AND DISCLAIMER OF WARRANTY , ACKNOWLEDGMENT and DISTRIBUTION REQUIREMENTS

Index

Differences (evaluation / licensed version)

Requirements

Installation

Variables

MAILME_SERVER
MAILME_FROM
MAILME_TO
MAILME_SUBJECT
MAILME_SUCCESS
MAILME_REQUIRED
MAILME_ERROR
MAILME_BADEMAIL
MAILME_BADCCCARD
MAILME_HELO
MAILME_EXTENDED
MAILME_AUTH
MAILME_SORT
MAILME_NOEMPTYFIELDS
MAILME_DEBUG
MAILME_BASE64

MAILME_BLIST
MAILME_BLISTDEF
MAILME_BLISTADD_xxx

Required _REQ_
Ignore _IGNORE_
EMail _EMAIL_

MAILME_CCACCEPT
CC checksum verification _CC_

Samples

Debug mode

Extended user information

Authentication

Internals: How it works

How to order / prices

License agreement


Differences (evaluation / licensed version):

The evaluation version is for evaluation only!

YOU HAVE THE LIMITED RIGHT TO EVALUATE THIS PROGRAM FOR 30 DAYS. AFTER THE EVALUATION PERIOD OF 30 DAYS YOU MUST EITHER PURCHASE A LICENSE OF THIS PROGRAM OR STOP USING IT! YOU CAN ORDER ARCLAB MAILME FOR ONLY $50 (SINGLE DOMAIN) @ ARCLAB SOFTWARE GDBR!

Please read the license agreement!

Click here for informations how to order / prices!


Requirements
arclab MailMe! requires a CGI compilant web server installed on Windows NT 4.0 or Windows 95/98.
You also need access to a SMTP server to send emails.


Installation
Simple copy the file MAILME.EXE to your cgi-bin directory at your web server. You can also copy arclab MailMe! to another directory.

Be sure the privilege for reading and executing this file in this directory is set. (user rights)
Without this privileges you will get the error message: 501 Not Implemented

MailMe.exe (dynamic linked) imports: MFC42.DLL, MSVCRT.DLL (This libraries should be shipped with and installed by your operating system)
As an alternative you can use the static linked version of arclab MailMe!, which don't need these libraries. This file is about 100KB bigger than the dynamic linked version. You find this file in the directory 'static' included in this package.



Variables:

MAILME_ variables ( set in your form ):

This variables are case sensitive! "MAILME_SERVER" ist not the same as "mailme_server"!

Required variables:

MAILME_SERVER

Domain name or IP address of SMTP server, such as "mail.myserver.com", or a dotted number such as "1.1.1.1".

<input type="hidden" name="MAILME_SERVER" value="mail.myserver.com">

MAILME_FROM

Setup the sender of this email. This should be the emailaddress of the webadmin or the person, who has set up this form.

<input type="hidden" name="MAILME_FROM" value="me@myserver.xxx">

MAILME_TO

Setup the emailaddress to which the form should be sent.

<input type="hidden" name="MAILME_TO" value="orders@myserver.xxx">

MAILME_SUBJECT

Subject of the mail. i.e. "Online order"

<input type="hidden" name="MAILME_SUBJECT" value="Online order">

MAILME_SUCCESS

URL to success document.

<input type="hidden" name="MAILME_SUCCESS" value="success.htm">

MAILME_REQUIRED

URL to required document.

<input type="hidden" name="MAILME_REQUIRED" value="required.htm">

MAILME_ERROR

URL to error document.

<input type="hidden" name="MAILME_ERROR" value="error.htm">

Optional variables:

MAILME_BADEMAIL

URL to bad email document.
If this varibale is not set, then the required variable
MAILME_REQUIRED will be used instead!

<input type="hidden" name="MAILME_BADEMAIL" value="bademail.htm">

MAILME_BADCCCARD

URL to bad credit card document.
If this varibale is not set, then the required variable
MAILME_REQUIRED will be used instead!

<input type="hidden" name="MAILME_BADCCCARD" value="badcard.htm">

MAILME_HELO

In the HELO command the host sending the command identifies itself; the command may be interpreted as saying "Hello, I am". If this variable is not set into your form, arclab MailMe! use the variable SERVER_NAME (CGI variable) instead.
Mostly you don't have to set this variable! Your web server should be allowed to use the SMTP server.

<input type="hidden" name="MAILME_HELO" value="www.arclab.com">

MAILME_EXTENDED

Set this variable to 'ON' to include the following CGI variables in your mail:

HTTP_USER_AGENT: The browser the client is using to send the request. General format: software/version library/version.
REMOTE_HOST
: The hostname making the request. If the server does not have this information, it should set REMOTE_ADDR and leave this unset.
REMOTE_ADDR: The IP address of the remote host making the request.
SERVER_NAME: The server's hostname, DNS alias, or IP address as it would appear in self-referencing URLs.

<input type="hidden" name="MAILME_EXTENED" value="ON">

MAILME_AUTH

Set this variable to 'ON' to include the following informations in your mail:

REMOTE_USER: If the server supports user authentication, and the script is protected, this is the username they have authenticated as. arclab MailMe! sets 'anonymous' if the string is empty!
REMOTE_IDENT: If the HTTP server supports RFC 931 identification, then this variable will be set to the remote user name retrieved from the server. Usage of this variable should be limited to logging only.
AUTH_TYPE: If the server supports user authentication, and the script is protects, this is the protocol-specific authentication method used to validate the user.

<input type="hidden" name="MAILME_AUTH" value="ON">

MAILME_SORT

Set this variable to 'ON' to sort the user variables in descending form.

<input type="hidden" name="MAILME_SORT" value="ON">

MAILME_NOEMPTYFIELDS

Set this variable to 'ON' to strip emtpy fields..

<input type="hidden" name="MAILME_NOEMPTYFIELDS" value="ON">

MAILME_DEBUG

Set this variable to 'ON' to run the debug mode. In this mode no mail will be sent. All informations are displayed within the client!

<input type="hidden" name="MAILME_DEBUG" value="ON">

MAILME_BASE64

Set this variable to 'ON' to sent the mail base64/mime encoded.
The default setting is off. ( US-ASCII-TEXT max. 1000 chars per line)

<input type="hidden" name="MAILME_BASE64" value="ON">

Filter (blacklist) variables:

Be careful setting this variables. If you set one of these variables, but not all (MAILME_BLIST, MAILME_BLISTDEF and at least one of MAILME_BLISTADD_ ) , you will get the MAILME_ERROR document.

MAILME_BLIST

In this variable you can set the URL for the "blocked users" document. ( example: MAILME_BLIST = "result/blocked.htm" )

<input type="hidden" name="MAILME_BLIST" value="result/blocked.htm">

MAILME_BLISTDEF

Use this variable to define one of your user variables as the variable which should be scanned.

<input type="hidden" name="MAILME_BLISTDEF" value="EMail">

MAILME_BLISTADD_xxx

You can specify more than one filters (for the same user variable defined in MAILME_BLISTDEF )
(example:
MAILME_BLISTADD_1 = "@notwanteddomain.xxx" MAILME_BLISTADD_2 = "@goaway.xxx")

The scan operation is not case sensitive, so "@NotWanteDDOMAIN.xxx" is the same as "@notwanteddomain.xxx"!

Warning: the scan is string based, so if you enter for example only one character and and the character is included in the user variable, you specified in the variable MAILME_BLISTDEF, the "blocked users" document will be shown!

<input type="hidden" name="MAILME_BLISTADD_1" value="@notwanted.xxx">

Sample: EMail filer
MAILME_BLIST = "result/blocked.htm"
MAILME_BLISTDEF = "EMail"
MAILME_BLISTADD_1 = "@notwanted.xxx"
MAILME_BLISTADD_2 = ....
...
MAILME_BLISTADD_10 ...
EMail = "person@notwanted.xxx"

the string "@notwanted.xxx" is included in EMail and in MAILME_BLISTADD_1 so the user will get the document "result/blocked.htm" specified in MAILME_BLIST !!!

Another common usage for a filter is a country or region selection.

User variables:

You could use all type of input fields in your form!
The number of user variables is not limited inside arclab MailMe!

Required user variables: You can set up variables, which are required for you. Simply use "_REQ_" as first characters of your variable name. If the user leaves one of these fields blank in your form, arclab MailMe! will switch to the required document. (MAILME_REQUIRED)
The character "_REQ_" is not visible in the mail, i.e. "_REQ_Name" is mailed and sorted as "Name".

<input type="text" name="_REQ_Name" value="">

Ignore user variables: Variablenames starting with "_IGNORE_" are filtered out. These variables will not be sent within email. This helps you to sort out not wanted form inputs, such as the submit button.

<input type="submit" name="_IGNORE_Go" value="Submit">

EMail user variables: Variables starting with "_EMAIL_" or "_REQ__EMAIL_" are scanned for a correct EMail address. If the address is not correct arclab MailMe! will switch to MAILME_BADEMAIL. If MAILME_BADEMAIL is not set, the required document (MAILME_REQUIRED) will be used instead.

<input type="text" name="_EMAIL_EMailAddress" value=""> or
<input type="text" name="
_REQ__EMAIL_EMailAddress" value=""> for a required emailaddress!
_EMAIL__REQ_ will not work! always use _REQ_ at the beginning! don't forget the second underscore("_")!

If the user enters a value which is not an emailaddress, the document MAILME_BADEMAIL is shown. The validation is based on the common emailaddress format. xxxxx@xxxxx.xxxxx

Examples for a valid emailaddress:
mmustermann@server0000.com
manfred.muster@server0000.com
mmuster@255.255.255.255
mmuster@muster.server000.com
mmuster@server0000.co.tw
...

Invalid:
mmuster@server0000
@manfred.com
@server0000
....

Credit card checksum verfication:

MAILME_CCACCEPT

Set up the card(s) you want to accept. Please use the following words for the cards (seperated by ',').
If this variable is not set, no cards will be accepted!

AMEX for American Express cards
MC for Mastercard / Eurocard
VISA for VISA cards
DISCOVER for Discover cards
DINERS for Diners Club cards
JCB for JCB cards

<input type="hidden" name="MAILME_CCACCEPTame" value="AMEX,VISA,MC">
If a credit card is used which is not specified, the document
MAILME_BADCCCARD is shown.

arclab MailMe! identifies the cardtype by the first 2 digits of the cardnumber:

AMEX : 37 or 34
MC : 5x
VISA : 4x
DISCOVER : 6x
DINERS : 30 or 36 or 38
JCB : 35

If you want to accept other cards, send an email to office@arclab.com

To accept all cards, independend from the first 2 digits set the variable MAILME_CCACCEPT to "ALL".
<input type="hidden" name="MAILME_CCACCEPTame" value="ALL">

CC checksum verification _CC_

arclab MailMe! lets you specify the variable name for CC. Simply use _CC_ as first characters of the variable name. The _CC_ tag is not included in your email. If you use i.e. '_CC_CreditCardNumber', you will only get 'CreditCardNumber'.

use:
<input type="text" name="
_CC_CreditCardNumber" value="">
if the credit card number is optional!
and:
<input type="text" name="
_REQ__CC_CreditCardNumber" value="">
if the credit card number is required.

If the verification failed, the document specified for bad cards is shown. (MAILME_BADCCCARD)

The verification is based on a checksum algorythm. But be aware, this only checks if the number is correct, this does not mean, this is a real credit card. There are many CC generators available which can be used for credit card (order) fraudulation. This checksum, does also not provides any information on the person or card limits.

arclab MailMe! does not charge the credit card. To do this you need a credit card terminal or a merchant account at a CC service provider.

If you want to disable CC checksum verification simply don't use _CC_ !

Security:
arclab MailMe! does not use data encryption!
Use SSL to make the transaction from the WWW client to the server secure. Be aware of sending the eMails containing Credit Card data out of your physical local network.

 


Samples

Sample A : Fill out form to win

a.htm / view source

Sample B: Order form without credit cards

b.htm / view source

Sample C: Order form with credit cards

c.htm / view source

Sample D: EMail registration with country selection

d.htm / view source


Internals: how it works!
The purpose of this section is to make arclab MailMe! transparent to you. If anything goes wrong, i. e. you always got the error document, please take a look at this section. If you encounter an error in this implementation, please send a mail to: peter@arclab.com

SMTP authentication ( connect to SMTP server )

arclab MailMe! uses the variable MAILME_HELO to log into the given SMTP server. If this variable is not set into your form, arclab MailMe! use the variable SERVER_NAME instead. Make sure your WWW server is allowed to log into the SMTP server. If MAILME_HELO / SERVER_NAME is not allowed you will always get the error-document (MAILME_ERROR).

How it works: ( you set the variables MAILME_ in your form! )

R: 220 Service ready 
S: HELO MAILME_HELO (SERVER_NAME, if MAILME_HELO is not set)
R: 250 Requested mail action okay, completed

If arclab MailMe! don't receive the SMTP-message 250 from the SMTP-server, it will switch to the html document (MAILME_ERROR)

SMTP sending the data

arclab MailMe! uses the SMTP protocol (RFC 821) for sending the data.

How it works: ( you set the variables MAILME_ in your form! )

S: MAIL FROM: MAILME_FROM
R: 250 Requested mail action okay, completed
S: RCPT TO: MAILME_TO
R: 250 Requested mail action okay, completed
S: DATA 
R: 354 Start mail input; end with . 
S: From: MAILME_FROM
S: X-Mailer: arclab MailMe!
S: MIME-Version: 1.0
S: Content-Type: text/plain; charset="iso-8859-1"
S: Content-Transfer-Encoding: base64
S: SUBJECT: MAILME_SUBJECT
S: now the data from your form will be sent using base64 coding
S: .
R: 250 Requested mail action okay, completed
S: QUIT
R: 221 Service closing transmission channel

If arclab MailMe! receives any error message it will switch to the error document ( MAILME_ERROR )

Switching to the result document

arclab MailMe! uses HTML commands to switch to the result document (i.e. MAILME_SUCCESS). So you can be sure that noone can use this program to send data from your server, which is not allowed. This also makes it possible to change the server, sending a file, displaying a text....

The following variables are used: MAILME_SUCESS, MAILME_REQUIRED, MAILME_ERROR
How to set this variables: ( also see Variables )
<input type="hidden" name="MAILME_SUCCESS" value="success.htm">
<input type="hidden" name="MAILME_SUCCESS" value="http://www.yourdomain.xxx/xyz/success.htm">
<input type="hidden" name="MAILME_SUCCESS" value="xyz.zip"> 

How it works:

<meta http-equiv="refresh" content="0; URL=MAILME_SUCCESS">
This should work with all browsers. The client will switch to the result document immediatly.
All modern browsers support meta tags, but even if the user has an "antique" browser, a message appears:
"If your browser does not switch automatically, please click here"


How to order / prices
You can order your license of arclab MailMe! @ http://www.arclab.com/products/mailme/order

We accept MC, VISA, AMEX, DISCOVER, cash, checks and bank orders. Credit card orders are processed by PsL, Inc. Cash, checks and bank orders must be directed to arclab software GdbR. Please look at our order page for more information. http://www.arclab.com/products/mailme/order

What license do I need?

One license is required per domain.

Examples:

  1. You have the domain (www.yourdomain.xxx). You want to set up several order forms for your products and a feedback form.
    You need one license of arclab MailMe!
  2. You are running several services (domains). One shopping-domain (www.yourshop.xxx), one shareware-domain (www.yourshareware.xxx).
    You need one license for your shopping domain and one for your shareware-domain.
  3. You are a professional internet provider. 20 customers of you want to use arclab MailMe!.
    You need a 20 domains license. Send an email with the number of licenses you want and we will send you an individual offer.
    mailto:office@arclab.com

Prices:

Type of license Price in US $ Price in DM
Single domain $ 49 DOMAIN DM 89 DOMAIN
> 10 domains $ 39 each DOMAIN DM 72 each DOMAIN
> 20 domains $ 29 each DOMAIN DM 54 each DOMAIN
Provider license I mail mail
Shipping & Handling: EMail (no disk is sent) free free
Shipping & Handling: FTP upload free free
Shipping & Handling: 3,5" disk $ 5 DM 9

arclab software GdbR Herbrig & Lappert
Hermann-K÷hl-Str. 2a
D-93049 Regensburg, Germany
http://www.arclab.com
mailto:office@arclab.com
Fax: +49 941 2802883


License agreement
YOU HAVE THE LIMITED RIGHT TO EVALUATE THIS PROGRAM FOR 30 DAYS. AFTER THE EVALUATION PERIOD OF 30 DAYS YOU MUST EITHER PURCHASE A LICENSE OF THIS PROGRAM OR STOP USING IT! USING THIS SOFTWARE FOR MORE THAN 30 DAYS FOR EVALUATION.

ONE LICENSE OF ARCLAB MAILME! IS REQUIRED FOR EACH DOMAIN! (i. e. http://www.arclab.com)
LOOK AT '
How to order' FOR A PROVIDER LICENSE / SITE LICENSE.

WARNING: THIS PRODUCT IS LICENSED TO YOU PURSUANT TO THE TERMS OF THE LICENSE AGREEMENT, AND IS PROTECTED BY COPYRIGHT LAW AND INTERNATIONAL TREATIES. UNAUTHORIZED REPRODUCTION OR DISTRIBUTION MAY RESULT IN SEVERE CIVIL AND CRIMINAL PENALTIES, AND WILL BE PROSECUTED TO THE MAXIMUM EXTENT POSSIBLE UND THE LAW. YOU MAY NOT: I. RENT OR LEASE OR SUBLICENSE THE SOFTWARE, II. DECOMPILE, REVERSE ASSEMBLE OR REVERSE ENGINEER THE SOFTWARE.

all brand names and trademarks are the property of their respective owners

LIMITED WARRANTY AND DISCLAIMER OF WARRANTY

THIS SOFTWARE AND ACCOMPANYING WRITTEN MATERIALS (INCLUDING INSTRUCTIONS FOR USE) ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. FURTHER, ARCLAB GDBR DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE, OR THE RESULTS OF USE, OF THE SOFTWARE OR WRITTEN MATERIALS IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. IF THE SOFTWARE OR WRITTEN MATERIALS ARE DEFECTIVE YOU, AND NOT ARCLAB GDBR OR ITS DEALERS, DISTRIBUTORS, AGENTS, OR EMPLOYEES, ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

THE ABOVE IS THE ONLY WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, THAT IS MADE BY ARCLAB GDBR, ON THIS PRODUCT. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY ARCLAB GDBR, ITS DEALERS, DISTRIBUTORS, AGENTS OR EMPLOYEES SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY AND YOU MAY NOT RELY ON ANY SUCH INFORMATION OR ADVICE.

NEITHER ARCLAB GDBR NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE CREATION, PRODUCTION OR DELIVERY OF THIS PRODUCT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL OR INCIDENTAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE OR INABILITY TO USE SUCH PRODUCT EVEN IF ARCLAB GDBR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Security:
arclab MailMe! does not use data encryption! Use SSL to make the transaction from the WWW client to the server secure. Be aware of sending the eMails containing credit card data out of your physical local network.

ACKNOWLEDGMENT

BY USING THIS VERSION OF ARCLAB MAILME! YOU ACKNOWLEDGE THAT YOU HAVE READ THIS LIMITED WARRANTY, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS' TERMS AND CONDITIONS. YOU ALSO AGREE THAT THE LIMITED WARRANTY IS THE COMPLETE AND EXCLUSIVE STATEMENT OF AGREEMENT BETWEEN THE PARTIES AND SUPERSEDE ALL PROPOSALS OR PRIOR AGREEMENTS, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN THE PARTIES RELATING TO THE SUBJECT MATTER OF THE LIMITED WARRANTY.

DISTRIBUTION REQUIREMENTS

THE DISTRIBUTION OF THE LICENSED VERSION OF ARCLAB MAILME! IS NOT ALLOWED!
WARNING: THIS PRODUCT IS LICENSED TO YOU PURSUANT TO THE TERMS OF THE LICENSE AGREEMENT, AND IS PROTECTED BY COPYRIGHT LAW AND INTERNATIONAL TREATIES. UNAUTHORIZED REPRODUCTION OR DISTRIBUTION MAY RESULT IN SEVERE CIVIL AND CRIMINAL PENALTIES, AND WILL BE PROSECUTED TO THE MAXIMUM EXTENT POSSIBLE UND THE LAW. YOU MAY NOT: I. RENT OR LEASE OR SUBLICENSE THE SOFTWARE, II. DECOMPILE, REVERSE ASSEMBLE OR REVERSE ENGINEER THE SOFTWARE.

THE EVALUATION VERSION OF ARCLAB MAILME! MAY BE FREELY DISTRIBUTED WITH THE FOLLOWING RESTRICTIONS; WRITTEN PERMISSION MUST BE RECEIVED TO DISTRIBUTE ARCLAB MAILME! ON RETAIL RACKS, ON CD ROMS, OR BUNDLED WITH ANY OTHER PRODUCT.
WHEN DISTRIBUTING THE EVALUATION VERSION THE FOLLOWING FILES MUST BE DISTRIBUTED TOGETHER.

MAILME.EXE
README.TXT
STATIC/MAILME.EXE
MANUAL/MANUAL.HTM
MANUAL/A.HTM
MANUAL/B.HTM
MANUAL/C.HTM
MANUAL/D.HTM
MANUAL/A.TXT
MANUAL/B.TXT
MANUAL/C.TXT
MANUAL/D.TXT
MANUAL/MAILME!.GIF

DISK VENDORS, SHAREWARE DISTRIBUTORS AND BBS(S) MAY CHARGE A NOMINAL FEE FOR DISTRIBUTION OF THE PROGRAM. THE RECIPIENT OF ARCLAB MAILME! MUST BE INFORMED, IN ADVANCE, THAT THE FEE PAID TO ACQUIRE ARCLAB MAILME! DOES NOT RELIEVE THE RECIPIENT FROM PURCHASING THE LICENSED VERSION OF ARCLAB MAILME! IF THE RECIPIENT CONTINUES TO USE ARCLAB MAILME! AFTER THE EVALUATION PERIOD.


arclab MailMe! copyright 1998 arclab software GdbR
Thomas Herbrig & Peter Lappert
Regensburg, Germany

Internet: www.arclab.com
EMail: office@arclab.com